#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()
//{
//	int i, j, a;
//	for (i = 1; i < 10; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			a = i * j;
//			printf("%d * %d = %2d ", j, i, a);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//int main()
//{
//	int i, j, max;
//	int arr[10];
//	
//	for (j = 0; j < 10; j++)
//	{
//		scanf("%d", &arr[j]);
//	}
//
//	max = arr[0];
//	for (i = 1; i < 10; i++)
//	{
//		
//		if (max < arr[i])
//			max = arr[i];
//	}
//	printf("%d", max);
//
//	return 0;
//}
//int main()
//{
//	int i;
//	double sum = 0;
//	int a = 1;
//
//	for (i = 1; i <= 100; i++)
//	{
//		sum += 1.0 / i * a ;
//		a = -a;
//		
//	}
//	printf("%lf", sum);
//	
//	return 0;
//}
//int main()
//{
//	int i, j, flag;
//	
//	for (i = 100; i <= 200; i++)
//	{
//		flag = 1;
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}	
//			
//		}
//		if (flag == 1)
//			printf("%d ", i);
//		
//		
//		
//	}
//	
//	return 0;
//}
//int main()
//{
//	int year;
//
//	for (year = 1000; year <= 2000; year++)
//	{
//		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//			printf("%d ", year);
//			
//	}
//
//	return 0;
//}
int main()
{
	int a;
	int b;
	scanf("%d%d", &a, &b);

	int c = a % b;

	while (c != 0)
	{
		a = b;
		b = c;
		c = a % b;
	}
	printf("%d", b);

	return 0;
}